package ee.edio.garmin.ide.fileTemplates; import com.intellij.ide.fileTemplates.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import ee.edio.garmin.MonkeyIcons; import org.jetbrains.annotations.NotNull; import java.util.Properties; public class MonkeyFileTemplateProvider implements FileTemplateGroupDescriptorFactory { @Override public FileTemplateGroupDescriptor getFileTemplatesDescriptor() { return new FileTemplateGroupDescriptor("Connect IQ", MonkeyIcons.SDK); } public static PsiElement createFromTemplate(@NotNull Project project, @NotNull VirtualFile rootDir, @NotNull String templateName, @NotNull String fileName) throws Exception { Properties properties = FileTemplateManager.getInstance(project).getDefaultProperties(); rootDir.refresh(false, false); PsiDirectory directory = PsiManager.getInstance(project).findDirectory(rootDir); if (directory != null) { FileTemplateManager manager = FileTemplateManager.getInstance(directory.getProject()); FileTemplate template = manager.getInternalTemplate(templateName); return FileTemplateUtil.createFromTemplate(template, fileName, properties, directory); } return null; } }